using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;

namespace NetRosApp.Infrastructure.Interface.BusinessEntities
{
    [Serializable]
    public class PretrazivanjeredAdvList : List<PretrazivanjeredAdv>
    {
        //public FilterList()
        //{
        //}
    }

    [Serializable]
    public class PretrazivanjeredAdv
    {
        //string _Naziv;
        private int _IDKolumna;
        object _Vrijednost;
        string _operacija = String.Empty;
        private bool polje = false;
        private bool _readonly = false;
        private specif spec = null;
        private object _tag = null;
        public object Tag
        {
            get { return _tag; }
            set { _tag = value; }
        }

        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        public object Vrijednost
        {
            get { return _Vrijednost; }
            set { _Vrijednost = value; }
        }


        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        public string Operacija
        {
            get { return _operacija; }
            set { _operacija = value; }
        }

        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        public int IDKolumna
        {
            get { return _IDKolumna; }
            set
            {
                _Vrijednost = null;
                _IDKolumna = value;
            }
        }

        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        public bool Polje
        {
            get { return polje; }
            set
            {
                _Vrijednost = null;
                polje = value;
            }
        }
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        public bool ReadOnly
        {
            get { return _readonly; }
            set
            {
                _readonly = value;
            }
        }
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        public specif Specif
        {
            get { return spec; }
            set { spec = value; }
        }
    }

    [Serializable]
    public class specif : BindingList<speciAdv>
    {
        //public FilterList()
        //{
        //}
    }

    [Serializable]
    public class speciAdv
    {
        //string _Naziv;
        
        object _Vrijednost;
        string _operacija = String.Empty;
        private bool _prikazi = false;
        private object polje;
        
        private object _tag = null;
        public object Tag
        {
            get { return _tag; }
            set { _tag = value; }
        }

        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        public object Vrijednost
        {
            get { return _Vrijednost; }
            set { _Vrijednost = value; }
        }
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        public bool Prikazi
        {
            get { return _prikazi; }
            set { _prikazi = value; }
        }
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        public string Operacija
        {
            get { return _operacija; }
            set { _operacija = value; }
        }


        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        public object Polje
        {
            get { return polje; }
            set
            {
                _Vrijednost = null;
                polje = value;
            }
        }
    }
    public class Pretrazivanjered<T>
    {
        string _Naziv;
        string _FieldName;
        T _Vrijednost;
        Type _Tip;
        string _operacija = String.Empty;

        public T Vrijednost
        {
            get { return _Vrijednost; }
            set { _Vrijednost = value; }
        }

        public Type Tip
        {
            get { return _Tip; }
            set { _Tip = value; }
        }

        public string Operacija
        {
            get { return _operacija; }
            set { _operacija = value; }
        }

        public string FieldName
        {
            get { return _FieldName; }
            set { _FieldName = value; }
        }
        public String Naziv
        {
            set
            {
                _Naziv = value;
            }
            get
            {
                return _Naziv;
            }
        }

    }
}
